项目协同

我们总结了一套敏捷开发全流程管理的最佳实践,旨在帮助企业研发团队提升研发效率,快速迭代与快速交付。

协同归属于项目,所以在项目创建完成后,平台会自动开启项目协同。

入口:

DevOps 平台 -> 我的项目 -> 项目协同

项目协同 - 图1

现在就让我们一起开启敏捷开发全流程管理之旅吧。

里程碑

里程碑是宏观层面比较重要的一个工具,我们主要靠它来设定方向、框定产品大图。如果没有里程碑设计的话,我们很容易突然迷失方向,陷入各种日常需求和问题中。

一般我们会制定一到两年的里程碑,点击右上角的创建里程碑按钮即可创建里程碑。

如下图所示,就是我们erda项目的里程碑。

项目协同 - 图2

需求管理

在软件研发流程中,首要是处理通过业务收集而来的诸多需求。下面将从一个需求出发详细介绍我们是如何进行需求管理的。

新建需求

这里我们新建一个项目协同列表增加Excel导出功能这样的需求(当然,这个我们已经支持了,这里只是举个例子)。

点击右上角的新建事项并选中需求进行添加,在需求创建页面,可以指定处理人、所属迭代、优先级、复杂度以及截止日期、标签等。

项目协同 - 图3

消息订阅

在事项详情页里我们可以关注该事项,当事项内容、状态、备注等发生变动时,都能够接收到站内信和邮件通知。事项创建者自动关注该事项。

项目协同 - 图4

需求拆分

在需求创建好之后,对于粒度相对较大的需求,相关人员可以创建关联需求对此进行拆分。

需求确认完毕,应当在关联事项中创建并关联若干个任务,由团队成员(前端开发、后端开发、测试人员)分别前去执行。

在测试阶段,如果发现一个缺陷是属于此需求的,也可以进行关联。

如下图所示,对于导出Excel的这个需求,创建并关联了两个子任务,分别为前端和后端派了一个任务。

项目协同 - 图5

规划与排期

对于待处理的需求,一般会有PM负责确定, 确定需求的迭代版本、优先级、具体负责人等。

待处理包含需求、任务和缺陷,在待处理页面中主要可以完成以下内容:

  • 管理未完成并且未规划具体迭代的事项,也就是 Product Backlog 。
  • 管理目前正在进行以及未开始的迭代,可以快速拖动事项进出迭代。

如下图所示,如果这个需求属于1.1版本迭代,则可以直接将此需求拖动至右侧的1.1迭代。

当然,也可以在创建需求的时候指定相应的版本。

项目协同 - 图6

迭代队列

在研发团队里,PD 最需要核心设计的是迭代队列,注意:这里提到的是队列,这个队列里需要长期装满 3 个迭代,其中的 1 个迭代里存放着最优先要解决的需求和问题。为什么这里是 3 个迭代的队列,而不是 1 个迭代呢?可以思考一下,我们在系统架构中,引入消息队列中间件的作用。PD 和开发之间完全可以通过这种方式来解耦的,开发只需要从队列中取设计好的产品任务解决问题就好,PD 只需要不断地从需求池里取内容经过设计后再合理排入到迭代队列中即可,两边的角色都可以实现自我驱动,不需要严格同步工作,所以这里的核心是为了异步工作。

项目协同 - 图7

那么,这个队列为什么是迭代队列,而不直接设计成需求队列,开发直接取需求而不是取迭代呢?

需求队列会存在两个很大的问题:

  1. 迭代是用来严格定义一个版本的时间周期,如果没有迭代,版本的时间周期节奏会变得很乱,会进入一种比较随意的状态。

  2. 当前实际开发中的需求如果要延期解决的话,这个延期的需求重新排到哪里去?难道重新放到需求队列的末尾吗?放到末尾显然不合适。如果是迭代,就可以严格规定放到下一个迭代或者下下一个迭代。

点击对应的版本,可以查看相应版本的全部事项。对于已完成的迭代版本可以进行归档。

活动日志

研发人员在处理某个事项的过程中,可以记录问题产生的原因、解决办法等相关日志。这样能更好的方便他人来追踪此事项。

项目协同 - 图8

事项看板

看板能够帮助我们快速了解各个事项的执行情况。

如下图所示,我们可以看到有截止日期、优先级、状态和自定义四种看板。

截止日期:未指定、已到期、已到期、30天内到期、未来。

优先级:紧急、高、中、低。

状态:待处理、进行中、已完成。

自定义:可以根据自己的业务需求制定自己的看板。

项目协同 - 图9

甘特图

甘特图可以用来追踪研发计划完成的进度。还可以方便TL直观展示各成员的任务的分布情况,方便自己和管理人员对于人员任务的安排。

项目协同 - 图10

缺陷管理

测试人员在测试功能时发现了bug,可以新建一个缺陷来描述Bug。

点击右上角新建缺陷按钮添加一个缺陷。

项目协同 - 图11

如果一个缺陷关联了其他的需求、任务、缺陷时,可以在缺陷详情页面里关联事项。

项目协同 - 图12